package com.example.forum.services;

import com.example.forum.model.Article;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IArticleService {

    /**
     * 新增文章
     * @param article 新增的文章
     */
    void create (Article article) ;

    /**
     * 查询所有文章 -- 包含用户信息
     * @return
     */
    List<Article> selectAll ();

    List<Article> selectAllByBoardId (Long boardId);

    Article selectByPrimaryKey(@Param("id") Long id);
    Article selectById(@Param("id") Long id);

    /**
     * 根据帖子id查询帖子详情
     * @param id
     * @return
     */
    Article selectDetailById(Long id);

    /**
     * 根据文章id对文章内容进行修改
     * @param id       文章id
     * @param title    文章标题
     * @param content  文章内容
     */
    void modify(Long id, String title, String content);

    /**
     * 对文章进行点赞
     * @param id
     */
    void thumbsUpById (Long id);

    /**
     * 根据Id删除帖⼦
     * @param id 帖⼦Id
     *
     */
    void deleteById (Long id);


    /**
     * 文章的回复数加1
     * @param id
     */
    void addOneReplyCountById (Long id);

    /**
     * 根据用户信息查询文章列表
     * @param userId
     * @return
     */
    List<Article> selectByUserId (Long userId);

}
